#include <iostream>
#include <string>

using namespace std;

template<typename T>

void sorted(T *arr,int len){
    int i,j;
    for(i=0;i<len-1;i++){
        for(j=0;j<len-i-1;j++){
            if(arr[i]<arr[j]){
                T temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
            }
        }
    }
}

template<typename T>
void show(T *arr,int len){
    for(int i=0;i<len;i++){
        cout<<arr[i]<<endl;
    }
}

int main(){
    char test[]="abcdefg";
    //string test="abcdefg";
    //int m=test.length();
    int m=sizeof(test)/sizeof(char);
    sorted(test,m);
    show(test,m);
    return 0;
}

/* 模板可以自行推导变量类型，但是类型必须一致，本来想使用字符串但是使用了arr[i]
就不能再使用string作为类型T*/

// FIXME:
//  1. 做的挺好的，继续努力！每周可以抽一些时间来练习编程，编程能力提升是一个长期过程。
//  2. 适当的留一些空行，让程序的每块看上去更清楚一些，不会显得非常拥挤
